/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found错误的解决

升级cmake时,提示“Error when bootstrapping CMake:Problem while running initial CMake”,第二次运行./bootstrap时,直接的给出了错误原因:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@localhost cmake-2.8.12.2]# ./bootstrap

---------------------------------------------

gmake: “cmake”是最新的。

/home/src/cmake-2.8.12.2/Bootstrap.cmk/cmake: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/src/cmake-2.8.12.2/Bootstrap.cmk/cmake)

---------------------------------------------

Error when bootstrapping CMake:

Problem while running initial CMake

---------------------------------------------

缺少GLIBCXX_3.4.15版本,或是更高的版本。

为了核实版本问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[root@localhost cmake-2.8.12.2]# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

GLIBCXX_3.4

GLIBCXX_3.4.1

GLIBCXX_3.4.2

GLIBCXX_3.4.3

GLIBCXX_3.4.4

GLIBCXX_3.4.5

GLIBCXX_3.4.6

GLIBCXX_3.4.7

GLIBCXX_3.4.8

GLIBCXX_3.4.9

GLIBCXX_3.4.10

GLIBCXX_3.4.11

GLIBCXX_3.4.12

GLIBCXX_3.4.13

GLIBCXX_FORCE_NEW

GLIBCXX_DEBUG_MESSAGE_LENGTH

我们看到当前GCC版本中的确没有GLIBCXX_3.4.15,考虑到刚安装过新版的GCC ,似乎不应该出现这样的问题。

顺着gcc安装路径,找到了新的libstdc++:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
[root@localhost cmake-2.8.12.2]# strings /usr/local/lib64/libstdc++.so.6.0.20|grep GLIBCXX

GLIBCXX_3.4

GLIBCXX_3.4.1

GLIBCXX_3.4.2

GLIBCXX_3.4.3

GLIBCXX_3.4.4

GLIBCXX_3.4.5

GLIBCXX_3.4.6

GLIBCXX_3.4.7

GLIBCXX_3.4.8

GLIBCXX_3.4.9

GLIBCXX_3.4.10

GLIBCXX_3.4.11

GLIBCXX_3.4.12

GLIBCXX_3.4.13

GLIBCXX_3.4.14

GLIBCXX_3.4.15

GLIBCXX_3.4.16

GLIBCXX_3.4.17

GLIBCXX_3.4.18

GLIBCXX_3.4.19

GLIBCXX_3.4.20

GLIBCXX_FORCE_NEW

GLIBCXX_DEBUG_MESSAGE_LENGTH

这里该有的都有了,把这份软链到正确的地方,就妥了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

[root@localhost cmake-2.8.12.2]# cp /usr/local/lib64/libstdc++.so.6.0.20 /usr/lib64/

[root@localhost cmake-2.8.12.2]# cd /usr/lib64/

[root@localhost lib64]# rm -f libstdc++.so.6

[root@localhost lib64]# ln -s libstdc++.so.6.0.20 libstdc++.so.6

[root@localhost lib64]# ll libstdc*

lrwxrwxrwx. 1 root root 19 5月 12 13:34 libstdc++.so.6 -> libstdc++.so.6.0.20

-rwxr-xr-x. 1 root root 987096 11月 22 02:08 libstdc++.so.6.0.13

-rwxr-xr-x. 1 root root 6700716 5月 12 13:33 libstdc++.so.6.0.20

此后,再进行编译安装就顺畅了:

1
2
3
4
5
6

./bootstrap

gmake

make install
关注作者公众号,获取更多资源!
赏作者一杯咖啡~